#include "output_handler.h"  // 包含输出处理器的头文件

#include "Arduino.h"  // 包含Arduino核心库
#include "constants.h"  // 包含常量定义文件

// Arduino内置LED的引脚
int led = LED_BUILTIN;

// 跟踪函数是否至少运行一次
bool initialized = false;

// 以表示当前x和y值的方式在屏幕上绘制一个点
void HandleOutput(tflite::ErrorReporter* error_reporter, float x_value,
                  float y_value) {
  // 仅执行一次
  if (!initialized) {
    // 将LED引脚设置为输出
    pinMode(led, OUTPUT);
    initialized = true;
  }

  // 计算LED的亮度，使得y=-1时完全关闭，y=1时完全打开。LED的亮度范围为0-255。
  int brightness = (int)(127.5f * (y_value + 1));

  // 设置LED的亮度。如果指定的引脚不支持PWM，当y > 127时，LED将打开，否则关闭。
  analogWrite(led, brightness);

  // 记录当前亮度值，以在Arduino绘图器中显示
  TF_LITE_REPORT_ERROR(error_reporter, "%d\n", brightness);
}